package cn.gtv.sdk.dcas.api;

import org.json.JSONObject;


public interface ITacker {

    JSONObject event();

    JSONObject detail();

    IServerTokenFactory serverTokenFactory();

    IEncryptor encryptor();

    ITacker submit();

    ITacker upload(boolean alreadySubmit);

    Builder toBuilder();

    interface Builder{

        Builder event(JSONObject eventJson);

        Builder event(String type,String target,String id);

        Builder detail(JSONObject detailJson);

        Builder serverTokenFactory(IServerTokenFactory serverTokenFactory);

        Builder encryptor(IEncryptor encryptor);

        ITacker build();
    }

}
